More and more, people are utilizing their personal, mobile computing devices as their interface to the rest of the world. Currently, we rely upon apps (small, typically narrowly focused applications suitable for execution on the mobile computing device) to carry out various functions or execute desired services on our behalf. Of course, more often than not, completing some general task requires that the owner/user of a mobile device switches between multiple apps to accomplish the desired service/function.
By way of illustration, completing a general task on a mobile, such as “reserve a car for my ski trip to Park City,” will very likely involve the execution of and coordination of information among several apps that are installed and executing on a person's computing device. For example, the generalized task will likely require the user to check a calendar app for specific dates of the trip to Park City. The user will also need to transfer the knowledge of the calendar app to one or more car rental apps, of course depending on whether the user checks multiple car rental agencies, in order to reserve a car. Also, as part of the reservation process, the person will also need to enter credit card information (that may or may not be stored by another app) to complete the reservation.
There is an effort to create user experience clients (UX clients), that include digital assistants such as Siri, Cortana, Google Now, as well as chat bots, that execute on and across the various computing devices of a person/user. The goal of the UX client, among other things, is to be able carry out generalized tasks on behalf of the user. However, current implementations of UX clients are limited in regard to their scope: they can only complete tasks to the extent of their programming/knowledge. For example and with reference to the generalized task above, a UX client may be sufficiently capable (in execution on the user's computing device as well as relying upon remote, back-end services) to identify that the generalized task is to reserve a car for the user, and further identify that the reservation will require information regarding the specific dates, as well as an area/location in which the car will be reserved. However, unless that UX client is encoded with the ability to interface with rental agencies, the UX client will not be able to complete the task.